/*
 * Copyright (c) 2024, Intel Corporation
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the
 * 'Software'), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

////////////////////////////////////////////////////////////////////////////////
// !!! WARNING - AUTO GENERATED FILE. DO NOT EDIT DIRECTLY. !!!
// Generated by KernelBinToSource.exe tool
////////////////////////////////////////////////////////////////////////////////

#if !defined(MEDIA_BIN_DLL)
#include "vp_platform_interface.h"
#include "vp_render_common.h"
#endif
#include "igvpfc_444PL3_input_xe2.h"

#if defined(MEDIA_BIN_SUPPORT) && !defined(MEDIA_BIN_DLL)

unsigned int IGVPFC_444PL3_INPUT_GENERATION_XE2_SIZE = 0;
unsigned int *IGVPFC_444PL3_INPUT_GENERATION_XE2 = nullptr;
static bool getIGVPFC_444PL3_INPUT_XE2 = LoadMediaBin(IGVPFC_444PL3_INPUT_GENERATION_XE2_NAME, &IGVPFC_444PL3_INPUT_GENERATION_XE2_SIZE, &IGVPFC_444PL3_INPUT_GENERATION_XE2);

#endif  // defined(MEDIA_BIN_SUPPORT) && !defined(MEDIA_BIN_DLL)

#if !defined(MEDIA_BIN_DLL)
void AddVpNativeKernelEntryToListFc_444pl3_inputXe2(vp::VpPlatformInterface &vpPlatformInterface)
{
    vp::KRN_ARG IMAGEREAD_CURBE[] =
    {
        {FC_444PL3_INPUT_IMAGEREAD_INPUTINDEX, 0, 0, 16, vp::ARG_KIND_GENERAL, false, vp::AddressingModeStateful},
        {FC_444PL3_INPUT_IMAGEREAD_OUTPUTINDEX, 16, 0, 16, vp::ARG_KIND_GENERAL, false, vp::AddressingModeStateful},
        {FC_444PL3_INPUT_IMAGEREAD_PLANEINDEX, 32, 0, 4, vp::ARG_KIND_GENERAL, false, vp::AddressingModeStateful},
        {FC_444PL3_INPUT_IMAGEREAD_ENQUEUED_LOCAL_SIZE, 36, 0, 12, vp::ARG_KIND_GENERAL, false, vp::AddressingModeStateful},
        {FC_444PL3_INPUT_IMAGEREAD_GLOBAL_ID_OFFSET, 0, 0, 12, vp::ARG_KIND_INLINE},
        {FC_444PL3_INPUT_IMAGEREAD_LOCAL_SIZE, 12, 0, 12, vp::ARG_KIND_INLINE},
    };

    vp::KRN_EXECUTE_ENV IMAGEREAD_PARAM =
    {
        0,         //barrier_count
        true,      //disable_mid_thread_preemption
        128,       //grf_count
        false,     //has_global_atomics
        true,      //has_no_stateless_write
        32,        //inline_data_payload_size
        192,       //offset_to_skip_per_thread_data_load
        32,        //simd_size
        true,      //subgroup_independent_forward_progress
        8,         //eu_thread_count
        false,     //has_fence_for_image_access
        false,     //has_sample
        true,      //has_4gb_buffers
        { 0, 0, 0 },         //work_group_walk_order_dimensions
        0,         //private_size
        0         //slm_size
    };

    vp::KRN_BTI IMAGEREAD_BTI[] =
    {
        {FC_444PL3_INPUT_IMAGEREAD_INPUTPLANE0, 0},
        {FC_444PL3_INPUT_IMAGEREAD_INPUTPLANE1, 1},
        {FC_444PL3_INPUT_IMAGEREAD_INPUTPLANE2, 2},
        {FC_444PL3_INPUT_IMAGEREAD_OUTPUTPLANE, 3},
    };

    vpPlatformInterface.InitVpDelayedNativeAdvKernel((uint32_t *)((uint8_t *)IGVPFC_444PL3_INPUT_GENERATION_XE2 + 0), 3648, IMAGEREAD_CURBE, 6, 48, IMAGEREAD_PARAM, IMAGEREAD_BTI, 4, "ImageRead_fc_444PL3_input");

}
#endif

#if !defined(MEDIA_BIN_SUPPORT) || defined(MEDIA_BIN_DLL)
DEFINE_SHARED_ARRAY_SIZE_UINT32(IGVPFC_444PL3_INPUT_GENERATION_XE2_SIZE, 3648);
extern const unsigned int IGVPFC_444PL3_INPUT_GENERATION_XE2[] =
{
    0x80100061, 0x7f054220, 0x00000000, 0x00000000, 0x80000065, 0x7f258220, 0x02000004, 0xffffffc0, 
    0x80000065, 0x7f058110, 0x01000024, 0x00ff00ff, 0x80001a40, 0x7f258220, 0x02007f24, 0x00000040, 
    0x80001940, 0x7f258220, 0x02007f24, 0x00000000, 0x8000195b, 0x7f048220, 0x01017f24, 0x00c07f04, 
    0x800c0061, 0x04050220, 0x00100104, 0x00000000, 0x80012031, 0x01140000, 0xfa007f8f, 0xf6780003, 
    0x8000c131, 0x030c0800, 0xfa007f8f, 0xf6740003, 0x00000060, 0x00000000, 0x00000000, 0x00000000, 
    0x00000060, 0x00000000, 0x00000000, 0x00000000, 0x00000060, 0x00000000, 0x00000000, 0x00000000, 
    0x3c8ca101, 0x00100000, 0x8000a065, 0x7f058220, 0x02000004, 0xffffffc0, 0x80001940, 0x7f058220, 
    0x02007f04, 0x00000000, 0x80032231, 0x050c0000, 0xfa007f8f, 0xf6740003, 0x2c240061, 0x00100057, 
    0x80000966, 0x80018220, 0x02008000, 0x400004c0, 0x80d72270, 0x00018660, 0x15000584, 0x00030003, 
    0x80000065, 0x04858660, 0x05000504, 0x00030003, 0x80001c41, 0x20010660, 0x01000594, 0x00005714, 
    0xec848161, 0x00123303, 0x80d41b70, 0x00018660, 0x15000484, 0x00000000, 0xac840053, 0x574f0503, 
    0x80000065, 0x04958660, 0x05000514, 0x00030003, 0x00154052, 0x07040660, 0x010e0304, 0x04040104, 
    0xec840061, 0x00103301, 0x80d40070, 0x00018660, 0x15000484, 0x00010001, 0xec840061, 0x00123301, 
    0x80d41d70, 0x00018660, 0x15000494, 0x00000000, 0xec840061, 0x00153301, 0x80d40070, 0x00018660, 
    0x15000484, 0x00020002, 0x80000061, 0x01350220, 0x00003300, 0x00000000, 0x80d40070, 0x00018660, 
    0x15000494, 0x00010001, 0x80000065, 0x04a58660, 0x05000524, 0x00030003, 0xec840061, 0x001a3301, 
    0x80d41a70, 0x00018660, 0x150004a4, 0x00000000, 0x80000061, 0x01550220, 0x00003300, 0x00000000, 
    0x80d40070, 0x00018660, 0x15000484, 0x00030003, 0x80000061, 0x01650220, 0x00003300, 0x00000000, 
    0x80d40070, 0x00018660, 0x15000494, 0x00020002, 0x80000061, 0x01750220, 0x00003300, 0x00000000, 
    0x80d40070, 0x00018660, 0x150004a4, 0x00010001, 0x80000065, 0x04b58660, 0x05000534, 0x00030003, 
    0x80000061, 0x01850220, 0x00003300, 0x00000000, 0x80d41a70, 0x00018660, 0x150004b4, 0x00000000, 
    0x80000061, 0x01950220, 0x00003300, 0x00000000, 0x80d40070, 0x00018660, 0x15000494, 0x00030003, 
    0x80000061, 0x01a50220, 0x00003300, 0x00000000, 0x80d40070, 0x00018660, 0x150004a4, 0x00020002, 
    0x80000061, 0x01b50220, 0x00003300, 0x00000000, 0x80d40070, 0x00018660, 0x150004b4, 0x00010001, 
    0x80000065, 0x04c58660, 0x05000544, 0x00030003, 0x80000061, 0x01c50220, 0x00003300, 0x00000000, 
    0x80d41a70, 0x00018660, 0x150004c4, 0x00000000, 0x80000065, 0x0b058660, 0x05000554, 0x00030003, 
    0x80000061, 0x01d50220, 0x00003300, 0x00000000, 0x80d41a70, 0x00018660, 0x15000b04, 0x00000000, 
    0x80000065, 0x0b158660, 0x05000564, 0x00030003, 0x80000061, 0x01e50220, 0x00003300, 0x00000000, 
    0x80d41a70, 0x00018660, 0x15000b14, 0x00000000, 0x80000065, 0x0b258660, 0x05000574, 0x00030003, 
    0x80000041, 0x20010660, 0x010005a4, 0x00005764, 0x80000061, 0x01f50220, 0x00003300, 0x00000000, 
    0x80d41b70, 0x00018660, 0x15000b24, 0x00000000, 0xac840053, 0x57f70506, 0x80940070, 0x00018660, 
    0x15000584, 0x00000000, 0x00141a52, 0x09040660, 0x010e0604, 0x04140204, 0xec840061, 0x00103302, 
    0x80d40070, 0x00018660, 0x150004a4, 0x00030003, 0xec840061, 0x00123302, 0x80d40070, 0x00018660, 
    0x150004b4, 0x00020002, 0x0017a331, 0x14440000, 0x20000714, 0x01680914, 0xec840061, 0x00153302, 
    0x80d40070, 0x00018660, 0x150004c4, 0x00010001, 0x80000061, 0x02350220, 0x00003300, 0x00000000, 
    0x80d40070, 0x00018660, 0x15000b04, 0x00010001, 0x0014c431, 0x20440000, 0x20020714, 0x01680914, 
    0xec840061, 0x001a3302, 0x80d40070, 0x00018660, 0x15000b14, 0x00010001, 0x80000061, 0x02550220, 
    0x00003300, 0x00000000, 0x80d40070, 0x00018660, 0x15000b24, 0x00010001, 0x80000061, 0x02650220, 
    0x00003300, 0x00000000, 0x80d40070, 0x00018660, 0x150004b4, 0x00030003, 0x0014c531, 0x28440000, 
    0x20040714, 0x01680914, 0x80000061, 0x02750220, 0x00003300, 0x00000000, 0x80d40070, 0x00018660, 
    0x150004c4, 0x00020002, 0x80000061, 0x02850220, 0x00003300, 0x00000000, 0x80d40070, 0x00018660, 
    0x15000b04, 0x00020002, 0x80000061, 0x02950220, 0x00003300, 0x00000000, 0x80d40070, 0x00018660, 
    0x15000b14, 0x00020002, 0x80000061, 0x02a50220, 0x00003300, 0x00000000, 0x80d40070, 0x00018660, 
    0x15000b24, 0x00020002, 0x80000061, 0x02b50220, 0x00003300, 0x00000000, 0x80d40070, 0x00018660, 
    0x150004c4, 0x00030003, 0x80000061, 0x02c50220, 0x00003300, 0x00000000, 0x80d40070, 0x00018660, 
    0x15000b04, 0x00030003, 0x80000061, 0x02d50220, 0x00003300, 0x00000000, 0x80d40070, 0x00018660, 
    0x15000b14, 0x00030003, 0x80000061, 0x02e50220, 0x00003300, 0x00000000, 0x80d40070, 0x00018660, 
    0x15000b24, 0x00030003, 0x80540070, 0x00018660, 0x15000584, 0x00010001, 0x80140070, 0x00018660, 
    0x15000584, 0x00020002, 0x00148365, 0x05058660, 0x06101404, 0x807fffff, 0x80000061, 0x02f50220, 
    0x00003300, 0x00000000, 0x00d41a70, 0x55050660, 0x16100504, 0x00101404, 0x28200061, 0x0010070c, 
    0x3c8c1101, 0x00100000, 0x0014a565, 0x07058660, 0x06101604, 0x807fffff, 0xec840061, 0x00103303, 
    0x00d41a70, 0x58050660, 0x16100704, 0x00101604, 0x28200061, 0x0010090e, 0x3c8c1101, 0x00100000, 
    0x00148465, 0x09058660, 0x06102004, 0x807fffff, 0xec840061, 0x00103304, 0x00d41a70, 0x5a050660, 
    0x16100904, 0x00102004, 0x00140065, 0x1c058660, 0x06101804, 0x807fffff, 0xec840061, 0x0010330b, 
    0x00d41a70, 0x60050660, 0x16101c04, 0x00101804, 0x00140065, 0x1e058660, 0x06102204, 0x807fffff, 
    0xec840061, 0x00103310, 0x00d41a70, 0x07050660, 0x16101e04, 0x00102204, 0x00140065, 0x11058660, 
    0x06101404, 0x80000000, 0x00148565, 0x30058660, 0x06102804, 0x807fffff, 0x00140065, 0x37058660, 
    0x06102004, 0x80000000, 0xec840061, 0x00103303, 0x00141c6b, 0x5c040228, 0xd28a5504, 0x14051104, 
    0x00d41c70, 0x09050660, 0x16103004, 0x00102804, 0x00140065, 0x35058660, 0x06101604, 0x80000000, 
    0x00141d6b, 0x05040228, 0xd28a5a04, 0x20053704, 0x00140065, 0x32058660, 0x06101a04, 0x807fffff, 
    0x00140065, 0x43058660, 0x06102804, 0x80000000, 0x04941e62, 0x20018aa0, 0x0a105c04, 0x00000000, 
    0x00140065, 0x3d058660, 0x06101804, 0x80000000, 0x00141d6b, 0x5e040228, 0xd28a5804, 0x16053504, 
    0x04941d62, 0x22018aa0, 0x0a100504, 0x00000000, 0xec840061, 0x00103304, 0x00141c6b, 0x12040228, 
    0xd28a0904, 0x28054304, 0x00d41170, 0x10050660, 0x16103204, 0x00101a04, 0x00140065, 0x41058660, 
    0x06102204, 0x80000000, 0x00141e6b, 0x62040228, 0xd28a6004, 0x18053d04, 0x04541e62, 0x20010aa0, 
    0x0a105e04, 0x00102000, 0x00140065, 0x39058660, 0x06102404, 0x807fffff, 0x04941d62, 0x1e058aa0, 
    0x0a101204, 0x00000000, 0x00140065, 0x47058660, 0x06101a04, 0x80000000, 0x00141c6b, 0x05040228, 
    0xd28a0704, 0x22054104, 0x04141c62, 0x20010aa0, 0x0a106204, 0x00102000, 0xfc841161, 0x00110332, 
    0xec840061, 0x0010330b, 0x00d41d70, 0x1c050660, 0x16103904, 0x00102404, 0x00141d6b, 0x30040228, 
    0xd28a1004, 0x1a054704, 0x04541d62, 0x22010aa0, 0x0a100504, 0x00102200, 0x00140065, 0x3f058660, 
    0x06102604, 0x807fffff, 0x00140065, 0x3b058660, 0x06102a04, 0x807fffff, 0x00140065, 0x49058660, 
    0x06102404, 0x80000000, 0x04941c62, 0x20010aa0, 0x0a103004, 0x00102000, 0xec840061, 0x00103303, 
    0x00940970, 0x07050660, 0x16103f04, 0x00102604, 0x00d41c70, 0x36050660, 0x16103b04, 0x00102a04, 
    0x00141c6b, 0x34040228, 0xd28a1c04, 0x24054904, 0xfc840061, 0x00160132, 0xfc840061, 0x00100133, 
    0x04141b62, 0x22010aa0, 0x0a103404, 0x00102200, 0x04d40062, 0x09058aa0, 0x0a102000, 0x00000000, 
    0x04940062, 0x04058aa0, 0x0a102000, 0x00000000, 0x80001161, 0x33010220, 0x00000154, 0x00000000, 
    0xfc840061, 0x001f0132, 0x00140065, 0x51058660, 0x06102a04, 0x80000000, 0x0014196b, 0x14040228, 
    0xd28a3604, 0x2a055104, 0x04d40062, 0x12058aa0, 0x0a102000, 0x00000000, 0x04940062, 0x10058aa0, 
    0x0a102000, 0x00000000, 0x04541962, 0x20010aa0, 0x0a101404, 0x00101e04, 0x00140065, 0x53058660, 
    0x06102604, 0x80000000, 0xfc841161, 0x00110331, 0x00140065, 0x45058660, 0x06102c04, 0x807fffff, 
    0xfc840061, 0x00110133, 0x00141c6b, 0x16040228, 0xd28a0704, 0x26055304, 0x00140065, 0x4b058660, 
    0x06102e04, 0x807fffff, 0x00941c70, 0x18050660, 0x16104504, 0x00102c04, 0x04541b62, 0x22010aa0, 
    0x0a101604, 0x00102200, 0xfc841161, 0x00140132, 0x00140065, 0x4d058660, 0x06102c04, 0x80000000, 
    0x00541c70, 0x1a050660, 0x16104b04, 0x00102e04, 0x04d40062, 0x30050aa0, 0x0a102200, 0x00100904, 
    0x00140065, 0x4f058660, 0x06102e04, 0x80000000, 0x00141b6b, 0x1c040228, 0xd28a1804, 0x2c054d04, 
    0xfc841161, 0x00110333, 0x04940062, 0x32050aa0, 0x0a102200, 0x00100404, 0xfc841161, 0x00130131, 
    0x00141c6b, 0x16040228, 0xd28a1a04, 0x2e054f04, 0x04141c62, 0x20010aa0, 0x0a101c04, 0x00102000, 
    0xfc841161, 0x00180130, 0x04d41a62, 0x1e050aa0, 0x0a101604, 0x00102000, 0xfc841161, 0x00190133, 
    0x80000061, 0x32010220, 0x00000174, 0x00000000, 0x04540062, 0x06050aa0, 0x0a102200, 0x00101204, 
    0x04140062, 0x14050aa0, 0x0a102200, 0x00101004, 0xfc841161, 0x001e0131, 0xfc840061, 0x001c0130, 
    0x04d40062, 0x22010aa0, 0x0a101e04, 0x00103004, 0x04940062, 0x20010aa0, 0x0a101e04, 0x00103204, 
    0xfc841161, 0x00170133, 0x04540062, 0x04050aa0, 0x0a101e04, 0x00100604, 0xfc841161, 0x00110232, 
    0x14140062, 0x22018aa0, 0x0a102200, 0x3f800000, 0xfc841161, 0x001b0131, 0xfc840061, 0x001d0130, 
    0x14d40062, 0x20018aa0, 0x0a102000, 0x3f800000, 0x14940062, 0x08058aa0, 0x0a100404, 0x3f800000, 
    0x80001161, 0x33010220, 0x000001f4, 0x00000000, 0x04540062, 0x0a058aa0, 0x0a102200, 0x00000000, 
    0xfc841161, 0x00100232, 0x04140062, 0x10058aa0, 0x0a102200, 0x00000000, 0xfc841161, 0x00160231, 
    0xfc840061, 0x00190230, 0x04d40062, 0x12058aa0, 0x0a102200, 0x00000000, 0x04940062, 0x22018aa0, 
    0x0a102200, 0x00000000, 0x04540062, 0x06050aa0, 0x0a101e04, 0x00101404, 0xfc841161, 0x00140233, 
    0x04140062, 0x16050aa0, 0x0a102000, 0x00100a04, 0x80001161, 0x32010220, 0x00000254, 0x00000000, 
    0xfc840061, 0x001c0231, 0x80000061, 0x30010220, 0x00000274, 0x00000000, 0x04d40062, 0x03050aa0, 
    0x0a102000, 0x00101004, 0x04940062, 0x18050aa0, 0x0a102000, 0x00101204, 0x04540062, 0x1a050aa0, 
    0x0a102000, 0x00102200, 0x14140062, 0x22018aa0, 0x0a100604, 0x3f800000, 0xfc841161, 0x00130233, 
    0xfc840061, 0x001f0232, 0xfc840061, 0x00170231, 0xfc840061, 0x001e0230, 0x04d40062, 0x20010aa0, 
    0x0a100804, 0x00101604, 0x04940062, 0x14050aa0, 0x0a100804, 0x00100304, 0x04540062, 0x0a050aa0, 
    0x0a100804, 0x00101804, 0x04140062, 0x10050aa0, 0x0a100804, 0x00101a04, 0xfc841161, 0x00180233, 
    0xfc840061, 0x001b0232, 0xfc840061, 0x001d0231, 0x80000061, 0x30010220, 0x000002f4, 0x00000000, 
    0x04d40062, 0x1c050aa0, 0x0a102200, 0x00102000, 0x04940062, 0x1e050aa0, 0x0a102200, 0x00101404, 
    0x04540062, 0x20050aa0, 0x0a102200, 0x00100a04, 0x04140062, 0x22050aa0, 0x0a102200, 0x00101004, 
    0x00162631, 0x00000000, 0xda0c0ca7, 0x043c1c44, 0x28100061, 0x0010577f, 0x80022031, 0x00000004, 
    0x30207f0c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 
    0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 
    0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 
    0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 
    0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
};
#endif // !defined(MEDIA_BIN_SUPPORT) || defined(MEDIA_BIN_DLL)